home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 17132 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  6.5 KB

  1. Path: wholder2.cts.com!user
  2. From: dbell@shvn.com (Doug Bell)
  3. Newsgroups: comp.lang.java,comp.lang.c++,comp.lang.smalltalk
  4. Subject: Re: Will Java kill C++?
  5. Date: Sat, 13 Apr 1996 17:18:06 -0700
  6. Organization: FTL Games
  7. Message-ID: <dbell-1304961718060001@wholder2.cts.com>
  8. References: <31682FFE.2781E494@bbn.com> <DpJyGG.FKK@hkuxb.hku.hk> <denatale-1004960822260001@grail1506.nando.net> <dbell-1104960125190001@wholder2.cts.com> <goochb.327.000893D1@rwi.com> <dbell-1104961159050001@wholder2.cts.com> <316D8523.74D7@concentric.net> <dbell-1104962256020001@wholder2.cts.com> <316E3FB6.38F7@concentric.net> <dbell-1204961508460001@wholder2.cts.com> <316F8A35.5189@concentric.net>
  9. NNTP-Posting-Host: wholder2.cts.com
  10.  
  11. "Alan L. Lovejoy" <alovejoy@concentric.net> wrote:
  12.  
  13. > Doug Bell wrote:
  14. >
  15. > > Well, you left out my definition of workhorse language from my post:
  16. > > 
  17. > > "I would define a 'workhorse' language to be one which is used by a large
  18. > > body of people to produce useful software which is used on a regular
  19. > > basis."
  20. > > 
  21. > > *Maybe* Smalltalk has grown into this role (from the number of people
  22. > > jumping on me for my original post, I might consider this :), but you tell
  23. > > me: Does Smalltalk meet that definition?  Honestly, now, is there a "large
  24. > > body of people" using it?
  25. > Well, define "large."  
  26. > And someone will have to tell both of us what the headcount of Smalltalk
  27. > programmers is.  Tens of thousands, certainly.  Perhaps hundreds of
  28. > thousands.  Does anyone have solid data?  I've seen a yearly growth
  29. > rate of 200% quoted, but that's not an absolute number.
  30.  
  31. "tens of thousands", producing useful software used on a regular basis
  32. probably meets my definition of a workhorse language. 
  33. Congratulations...if this is where Smalltalk has grown to, then perhaps
  34. you have been fortunate not to have invested your time in a dead-end
  35. language.
  36.  
  37. > Firstly, if Java is to be used to code applets on WWW pages, then it will
  38. > always be interpreted (when used for that purpose)--unless the world happens
  39. > to standardize on exactly one instruction set to the exclusion of all others.
  40.  
  41. Here's my opportunity to teach you something.  :)
  42.  
  43. Currently, Java is executed through interpretation.  This is already
  44. starting to change as the first "just in time" compilers (or JIT
  45. compilers) for java are becoming available.  A JIT compiler will translate
  46. the machine-independent byte-codes of Java into directly executable
  47. machine code.  This translation happens as the code is loaded off the
  48. network, and in fact should occur faster than the code is downloaded
  49. across the network, so there should be *no* additional delays imposed by
  50. this translation.  The resulting machine code is then executed.  Web
  51. browsers most certainly will use JIT compilers in the near future.  Stand
  52. alone Java applications can either be translated as they are loaded, or
  53. translated once for a platform.
  54.  
  55. The performance of this translated code is yet to be determined, but it
  56. should be able to achieve somewhere between 50% and 100% the speed of
  57. natively compiled C or C++ code.
  58.  
  59. In addition, Sun is already working on processors which will execute the
  60. Java bytecodes directly.  How these will affect the market remains
  61. unclear, but it serves to point out that there are even greater
  62. performance possibilities already in the works.
  63.  
  64. > > To give a short analogy (please no flames on this, that belongs in a
  65. > > different newsgroup), I use a Mac.  I am convinced that a Mac is a better
  66. > > tool than a Windows-based PC.  Why, then, is not the Mac the dominant
  67. > > tool?  Two reasons: 1) it was too expensive for a long time; and 2) it was
  68. > > not an open system and the pace of innovation was limited to a large
  69. > > extent to what Apple could manage.  I blame the tool for this.  It doesn't
  70. > > stop me from trying to promote it, but I don't blame everyone who bought a
  71. > > PC for the failings of the Mac.  Nor do I mark it up to "prejudice,
  72. > > ignorance, politics, inertia and the tendency to copy what others are
  73. > > doing".
  74. > Your analogy between the Mac and Smalltalk is more apt than you may know.
  75. > But the Mac is not responsible for its failure.  Apple is.
  76.  
  77. Agreed.  But the tool and its match to the market is the result of Apple's
  78. mis-steps, so ultimately the tool becomes less useful because resources
  79. and innovation are directed at the PC.
  80.  
  81. > As Ken Auer once said, "If Smalltalk succeeds, it will be in spite of
  82. > ParcPlace."
  83. > Fortunately, the Mac and Apple are not dead yet.  Nor is Smalltalk.
  84. > Where there's life, there's hope.
  85.  
  86. Yes, there is hope.  But it still requires capitalizing on the
  87. opportunity, not grumbling about "what should have been."
  88.  
  89. > The main differences between Java and Smalltalk (as languages, not as
  90. development
  91. > environments or delivery platforms):
  92. > 1. Java is statically typed, Smalltalk is not (although both use dynamic
  93. binding).
  94.  
  95. Maybe this my lack of understanding (as I bow to the Gods of OOP who have
  96. traveled the road farther than I), but I view Java's strongly typed
  97. behavior as a benefit.  I realize this is probably different from what you
  98. mean by statically typed.
  99.  
  100. > 2. Smalltalk has block closures.  Java doesn't even have function pointers.
  101.  
  102. I keep seeing this.  What is a block closure?
  103.  
  104. > 3. Smalltalk is highly reflexive and permits metaprogramming.  Java isn't and
  105. > doesn't (compared to Smalltalk).
  106.  
  107. English please... (sorry)
  108.  
  109. > 4. There are massive syntactical differences that are the fodder for religious
  110. > wars, but have no fundamental significance.  The full grammar of Smalltalk
  111. > can be expressed in about twenty EBNF statements. If it takes you longer
  112. > than a day to learn the syntax, you should consider changing professions.
  113.  
  114. Syntax is the least significant part of learning a new language.  Design
  115. principles, libraries, standards of use, experience--these are what take a
  116. long time to master.  The more these change from whatever went before, the
  117. longer it takes to become productive in a new language.
  118.  
  119. BASIC-->Pascal was a much bigger shift (long ago), than Pascal-->C (long
  120. ago also), because the first transistion was from non-procedural to
  121. procedural language while the second was mostly a change in syntax. 
  122. C-->C++ was similarly a larger shift (and really I think C++ is a poorly
  123. designed language, so that didn't help) than 6502-->680x0 or
  124. 680x0-->PowerPC assembly because again the paradigm shifted.  Probably the
  125. biggest shift was learning Prolog, because procedural to declarative
  126. required an entirely different mindset.  Not to say that there weren't
  127. benefits gained from these transistions, just that the syntax was never
  128. the issue in any of these shifts.
  129.  
  130. Doug Bell
  131. dbell@shvn.com
  132.